package com.moody.util;

/*
 * Copyright ? Moody analytics   
 *
 * @Title: SystemUtil.java 
 * @Package： com.moody.util 
 * @author： Liu Peng
 * @Description: TODO(用一句话描述该文件做什么)    
 * @date： 2012-6-29 上午09:28:28
 * @Modified by: Liu Peng 
 * @version V1.0   
 */

import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.nio.charset.Charset;
  
/** 
 * 与系统相关的一些常用工具方法. 
 *  
 * @author stephen 
 * @version 1.0.0 
 */  
public class SystemUtil {  
  
     
    public static String getOSName() {  
        return System.getProperty("os.name").toLowerCase();  
    }  
      
    public static String getUnixKey() {  
        String mac = null;  
        BufferedReader bufferedReader = null;  
        Process process = null;  
        try {  
            process = Runtime.getRuntime().exec("ifconfig eth0");// linux下的命令，一般取eth0作为本地主网卡 显示信息中包含有mac地址信息  
            bufferedReader = new BufferedReader(new InputStreamReader(process  
                    .getInputStream()));  
            String line = null;  
            int index = -1;  
            while ((line = bufferedReader.readLine()) != null) {  
                index = line.toLowerCase().indexOf("hwaddr");// 寻找标示字符串[hwaddr]  
                if (index >= 0) {// 找到了  
                    mac = line.substring(index +"hwaddr".length()+ 1).trim();//  取出mac地址并去除2边空格  
                    break;  
                }  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                if (bufferedReader != null) {  
                    bufferedReader.close();  
                }  
            } catch (IOException e1) {  
                e1.printStackTrace();  
            }  
            bufferedReader = null;  
            process = null;  
        }  
  
        return mac;  
    }  
  
    public static String getWindowsKey() {  
        String mac = null;  
        BufferedReader bufferedReader = null;  
        Process process = null;  
        try {  
            process = Runtime.getRuntime().exec("ipconfig /all");// windows下的命令，显示信息中包含有mac地址信息  
            bufferedReader = new BufferedReader(new InputStreamReader(process  
                    .getInputStream(),Charset.forName("GB2312")));  
            String line = null;  
            int index = -1;  
            while ((line = bufferedReader.readLine()) != null) {  
                index = line.toLowerCase().indexOf("physical address");// 寻找标示字符串[physical address]
                if(index == -1) index = line.indexOf("物理地址");
                if (index >= 0) {// 找到了  
                    index = line.indexOf(":");// 寻找":"的位置  
                    if (index>=0) {  
                        mac = line.substring(index + 1).trim();//  取出mac地址并去除2边空格  
                    }  
                    break;  
                }  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                if (bufferedReader != null) {  
                    bufferedReader.close();  
                }  
            } catch (IOException e1) {  
                e1.printStackTrace();  
            }  
            bufferedReader = null;  
            process = null;  
        }  
  
        return mac;  
    }    
} 